The present invention relates to methods and apparatus for transferring data within a multi-processing system.
In recent years, there has been an insatiable desire for faster computer processing data throughputs because cutting-edge computer applications involve real-time, multimedia functionality. Graphics applications are among those that place the highest demands on a processing system because they require such vast numbers of data accesses, data computations, and data manipulations in relatively short periods of time to achieve desirable visual results. These applications require extremely fast processing speeds, such as many thousands of megabits of data per second. While some processing systems employ a single processor to achieve fast processing speeds, others are implemented utilizing multi-processor architectures. In multi-processor systems, a plurality of sub-processors can operate in parallel (or at least in concert) to achieve desired processing results.
In some multi-processing systems, each processor may employ a relatively small local memory in which to execute program code (as opposed to a larger random access memory, RAM). The larger RAM (main or system memory) may be used for bulk storage. The processors may also employ direct memory access (DMA) technology to transfer data from the main memory to the respective local memories.
It may be desirable to execute a program written using a first instruction set architecture (ISA) on a processing system designed to execute a second ISA. For example, in the multi-processor system described above, the plurality of processors may be operable to execute programs written in, e.g., the Power PC ISA. A program written using a different ISA, such as IA32, IA64, etc., would need to be translated and compiled in PowerPC to run. Prior art techniques for performing the translation/compilation are not satisfactory, al least with respect to multi-processor environments.